<!DOCTYPE html>
<!--[if IEMobile 7 ]><html class="no-js iem7"><![endif]-->
<!--[if lt IE 9]><html class="no-js lte-ie8"><![endif]-->
<!--[if (gt IE 8)|(gt IEMobile 7)|!(IEMobile)|!(IE)]><!--><html class="no-js" lang="en"><!--<![endif]-->
<head>
  <meta charset="utf-8">
  <title>vim使用 &mdash; cat writebug.cn/history</title>
  <meta name="author" content="zhiliao">
  <meta name="description" content="vim使用" />

  <meta name="keywords" content="开发者,程序,博客园,程序猿,程序媛,极客,码农,编程,代码,软件开发,开源,IT网站,技术社区,Developer,Programmer,Coder,Geek,Coding,Code,writebug,bug,写bug,linux,vim,编程语言,调试" />

  <link href="/feeds/all.atom.xml" type="application/rss+xml" rel="alternate"
        title="cat writebug.cn/history RSS Feed" />





  <!-- http://t.co/dKP3o1e -->
  <meta name="HandheldFriendly" content="True">
  <meta name="MobileOptimized" content="320">
  <meta name="viewport" content="width=device-width, initial-scale=1">


    <link href="/favicon.png" rel="icon">

  <link href="/theme/css/main.css" media="screen, projection"
        rel="stylesheet" type="text/css">
  <link href="/theme/css/pygment.css" rel="stylesheet" type="text/css">

  <!--
  <link href="//fonts.googleapis.com/css?family=PT+Serif:regular,italic,bold,bolditalic"
        rel="stylesheet" type="text/css">
  <link href="//fonts.googleapis.com/css?family=PT+Sans:regular,italic,bold,bolditalic"
        rel="stylesheet" type="text/css">
  -->


  <script src="/theme/js/modernizr-2.0.js"></script>
  <script src="/theme/js/ender.js"></script>
  <script src="/theme/js/octopress.js" type="text/javascript"></script>
</head>

<body >
  <header role="banner"
  >
<hgroup>
  <h1><a href="/">cat writebug.cn/history</a></h1>
    <h2>一个开发者的技术博客。</h2>
</hgroup></header>
  <nav role="navigation"><ul class="subscription" data-subscription="rss">
  <li><a href="/feeds/all.atom.xml" rel="subscribe-rss">RSS</a></li>
</ul>


<ul class="main-navigation">
    <li><a href="/">Home</a></li>
    <li><a href="/archives.html">Archive</a></li>
    <li><a href="/pages/todolist.html">TodoList</a></li>
    <li><a href="/pages/about.html">About</a></li>
</ul></nav>
  <div id="main">
    <div id="content">
<div>
  <article class="hentry" role="article">
<header>
      <h1 class="entry-title">vim使用</h1>
    <p class="meta">
<time datetime="2014-03-13T00:00:00+08:00" pubdate>2014-03-13 00:00:00</time>      
    </p>
</header>

    <div class="entry-content"><p><img alt="vim" src="/posts/2014/03/13/vi-vim-cheat-sheet-sch1.gif"></p>
<p><a href="http://app.waibc.com/manual/vimcdoc/doc/help.html">vim帮助文档（中文）</a></p>
<h1>VIM使用</h1>
<h2>插入模式</h2>
<div class="highlight-custom"><pre><span></span><code>i     从当前光标处进入插入模式
I     进入插入模式，并置光标于行首
a     追加模式，置光标于当前光标之后
A     追加模式，置光标于行末
o     在当前行之下新加一行，并进入插入模式
O     在当前行之上新加一行，并进入插入模式
Esc     退出插入模式
</code></pre></div>

<h2>移动光标和滚动屏幕</h2>
<div class="highlight-custom"><pre><span></span><code><span class="n">h</span><span class="p">,</span><span class="n">j</span><span class="p">,</span><span class="n">k</span><span class="p">,</span><span class="n">l</span><span class="w">     </span><span class="n">上</span><span class="err">，</span><span class="n">下</span><span class="err">，</span><span class="n">左</span><span class="err">，</span><span class="n">右</span>
<span class="n">H</span><span class="w">     </span><span class="n">移动光标到当前屏幕上最上边的一行</span>
<span class="n">M</span><span class="w">     </span><span class="n">移动光标到当前屏幕上中间的一行</span>
<span class="n">L</span><span class="w">     </span><span class="n">移动光标到当前屏幕上最下边的一行</span>

<span class="n">ctrl</span><span class="o">-</span><span class="n">d</span><span class="w">     </span><span class="n">向下翻半页</span>
<span class="n">ctrl</span><span class="o">-</span><span class="n">u</span><span class="w">     </span><span class="n">向上翻半页</span>
<span class="n">ctrl</span><span class="o">-</span><span class="n">f</span><span class="w">     </span><span class="n">上翻一页</span>
<span class="n">ctrl</span><span class="o">-</span><span class="n">b</span><span class="w">     </span><span class="n">下翻一页</span>

<span class="n">gg</span><span class="w">    </span><span class="n">跳至文件的第一行</span>
<span class="n">G</span><span class="w">     </span><span class="n">跳到文件最后一行</span>
<span class="o">[</span><span class="n">N</span><span class="o">]</span><span class="n">G</span><span class="w">  </span><span class="n">跳到第N行</span><span class="err">，</span><span class="n">如0G</span><span class="err">，</span><span class="n">就等价于gg</span><span class="err">，</span><span class="mi">100</span><span class="n">G就是第100行</span>
<span class="err">:</span><span class="n">N</span><span class="w">    </span><span class="n">跳到第N行</span>

<span class="mi">0</span><span class="w">     </span><span class="n">跳至行首</span><span class="err">，</span><span class="n">不管有无缩进</span><span class="err">，</span><span class="n">就是跳到第0个字符</span>
<span class="o">^</span><span class="w">     </span><span class="n">跳至行首的第一个字符</span>
<span class="err">$</span><span class="w">     </span><span class="n">跳至行尾</span>


<span class="n">文字段落</span>
<span class="o">--------------</span>
<span class="n">w</span><span class="w">     </span><span class="n">跳到下一个字首</span><span class="err">，</span><span class="n">按标点或单词分割</span>
<span class="n">W</span><span class="w">     </span><span class="n">跳到下一个字首</span><span class="err">，</span><span class="n">长跳</span><span class="err">，</span><span class="n">如end</span><span class="o">-</span><span class="k">of</span><span class="o">-</span><span class="n">line被认为是一个字</span>
<span class="n">e</span><span class="w">     </span><span class="n">跳到下一个字尾</span>
<span class="n">E</span><span class="w">     </span><span class="n">跳到下一个字尾</span><span class="err">，</span><span class="n">长跳</span>
<span class="n">b</span><span class="w">     </span><span class="n">跳到上一个字</span>
<span class="n">B</span><span class="w">     </span><span class="n">跳到上一个字</span><span class="err">，</span><span class="n">长跳</span>

<span class="p">(</span><span class="w">  </span><span class="n">跳到上一个句子</span>
<span class="p">)</span><span class="w">  </span><span class="n">跳到下一个句子</span>
<span class="err">{</span><span class="w">  </span><span class="n">跳到上一个段落</span>
<span class="err">}</span><span class="w">  </span><span class="n">跳到下一个段落</span>

<span class="o">[</span><span class="n">[ 跳往上一个函式(markdown 可以跳到下一标题，很好用)</span>
<span class="o">]</span><span class="err">]</span><span class="w"> </span><span class="n">跳往下一个函式</span>


<span class="o">%</span><span class="w"> </span><span class="n">可以查找配对的括号</span><span class="w"> </span><span class="p">)</span><span class="err">、]、}。</span>
<span class="n">gd</span><span class="w">    </span><span class="n">跳至当前光标所在的变量的声明处</span>
<span class="n">fx</span><span class="w">    </span><span class="n">在当前行中找x字符</span><span class="err">，</span><span class="n">找到了就跳转至</span>
<span class="p">;</span><span class="w">     </span><span class="n">重复上一个f命令</span><span class="err">，</span><span class="n">而不用重复的输入fx</span>
<span class="n">tx</span><span class="w">    </span><span class="n">与fx类似</span><span class="err">，</span><span class="n">但是只是跳转到x的前一个字符处</span>
<span class="n">Fx</span><span class="w">    </span><span class="n">跟fx的方向相反</span>
</code></pre></div>

<h2>编辑和保存</h2>
<div class="highlight-custom"><pre><span></span><code>复制粘贴
dd     删除光标所在行
dw     删除一个字(word)
x     删除当前字符
X     删除前一个字符
D     删除到行末
yy     复制一行，此命令前可跟数字，标识复制多行，如6yy，表示从当前行开始复制6行
yw     复制一个字
y$     复制到行末
p     粘贴粘贴板的内容到当前行的下面
P     粘贴粘贴板的内容到当前行的上面
]p     有缩进的粘贴，vim会自动调节代码的缩进
&quot;a     将内容放入/存入a寄存器，可以支持多粘贴板
附：比如常用的一个寄存器就是系统寄存器，名称为+，所以从系统粘贴板粘贴到vim中的命令为&quot;+p,注意此处的+不表示操作符，二十一个寄存器。

u  撤销（undo）
ctrl+r    反撤销
x   删除一个字符
R   进入覆盖模式
退格键 取消覆盖

编辑
r     替换一个字符
J     将下一行和当前行连接为一行
cc     删除当前行并进入编辑模式
cw     删除当前单词，并进入编辑模式
c$     擦除从当前位置至行末的内容，并进入编辑模式
s     删除当前字符并进入编辑模式
S     删除光标所在行并进入编辑模式
xp     交换当前字符和下一个字符
u     撤销
ctrl+r     重做
.     重复上一个编辑命令
~     切换大小写，当前字符
g~iw     切换当前字的大小写
gUiw     将当前字变成大写
guiw     将当前字变成小写

:w     将缓冲区写入文件，即保存修改
:wq     保存修改并退出
:x     保存修改并退出
:q     退出，如果对缓冲区进行过修改，则会提示
:q!     强制退出，放弃修改
</code></pre></div>

<h2>标记文本</h2>
<div class="highlight-custom"><pre><span></span><code>v     进入可视模式，单字符模式
V     进入可视模式，行模式
ctrl+v     进入可视模式，列模式，类似于UE的列模式
o     跳转光标到选中块的另一个端点
O     跳转光标到选中块的另一个端点（同上）
U     将选中块中的内容转成大写
aw     选中一个字
ab     选中括号中的所有内容，包括括号本身
aB     选中{}括号中的所有内容
ib     选中括号中的内容，不含括号
iB     选中{}中的内容，不含{}

对标记进行动作
&gt;     块右移
&lt;     块左移
y     复制块
d     删除块
~     切换块中内容的大小写
</code></pre></div>

<h2>缩进</h2>
<div class="highlight-custom"><pre><span></span><code>&gt;&gt;     将当前行右移一个单位
&lt;&lt;     将当前行左移一个单位(一个tab符)
==     自动缩进当前行
</code></pre></div>

<h2>标示位置</h2>
<div class="highlight-custom"><pre><span></span><code>你可以先做标记再随时返回被标记的位置.

m char  把这个地方标示成 char
&#39; char  跳到被标为 char的那一行
&#39;&#39; (按两次&#39;) 回到刚才的位置

char 可以是小写的 a-z中的任一个。 一个标记在除了下面的这两种情况外会一直存在

1) 重覆使用相同的标示 char
或 2) 删掉了被标示的那一行
</code></pre></div>

<h3>标签页，窗口和buffer</h3>
<div class="highlight-custom"><pre><span></span><code><span class="n">同时编辑多个文件</span>
<span class="n">在vim众多的插件中</span><span class="err">，</span><span class="n">有一个叫minibuffer的插件</span><span class="err">，</span><span class="n">就是下面所说的标签页功能了</span><span class="err">，</span><span class="n">可以支持同时编辑多个文件</span><span class="err">。</span>

<span class="nl">标签命令</span><span class="p">:</span>
<span class="err">:</span><span class="n">tabe</span><span class="w"> </span><span class="n">fn</span><span class="w">     </span><span class="n">在一个新的标签页中编辑文件fn</span>
<span class="n">gt</span><span class="w">     </span><span class="n">切换到下一个标签页</span>
<span class="n">gT</span><span class="w">     </span><span class="n">切换到上一个标签页</span>
<span class="err">:</span><span class="n">tabr</span><span class="w">     </span><span class="n">切换到第一个标签页</span>
<span class="err">:</span><span class="n">tabl</span><span class="w">     </span><span class="n">切换到最后一个标签页</span>
<span class="err">:</span><span class="n">tabm</span><span class="w"> </span><span class="o">[</span><span class="n">N</span><span class="o">]</span><span class="w">     </span><span class="n">把当前tab移动到第N个tab之后</span>
<span class="n">对</span><span class="err">，</span><span class="n">正如你所想象的那样</span><span class="err">，</span><span class="n">跟eclipse</span><span class="p">,</span><span class="w"> </span><span class="n">ue等的标签页是一个意思</span><span class="err">！</span>

<span class="nl">窗口命令</span><span class="p">:</span>
<span class="n">ctrl</span><span class="o">+</span><span class="n">w</span><span class="w"> </span><span class="n">s</span><span class="w">     </span><span class="n">水平分割窗口</span>
<span class="n">ctrl</span><span class="o">+</span><span class="n">w</span><span class="w"> </span><span class="n">v</span><span class="w">     </span><span class="n">垂直分割窗口</span>
<span class="err">:</span><span class="n">split</span><span class="w">      </span><span class="n">水平分割窗口</span>
<span class="err">:</span><span class="n">vsplit</span><span class="w">     </span><span class="n">垂直分割窗口</span>
<span class="n">ctrl</span><span class="o">+</span><span class="n">w</span><span class="w"> </span><span class="n">w</span><span class="w">     </span><span class="n">切换窗口</span>
<span class="n">ctrl</span><span class="o">+</span><span class="n">w</span><span class="w"> </span><span class="n">hjkl</span><span class="w">  </span><span class="n">按方向切换窗口</span>
<span class="n">ctrl</span><span class="o">+</span><span class="n">w</span><span class="w"> </span><span class="n">q</span><span class="w">     </span><span class="n">退出当前窗口</span><span class="p">(</span><span class="n">由于同时有多个文件</span><span class="err">，</span><span class="n">此命令不会影响其他窗口</span><span class="p">)</span>

<span class="nl">buffer操作</span><span class="p">:</span>
<span class="err">:</span><span class="n">ls</span><span class="w">     </span><span class="n">显示所有buffer</span>
<span class="err">:</span><span class="n">badd</span><span class="w"> </span><span class="err">{</span><span class="n">fname</span><span class="err">}</span><span class="w">   </span><span class="n">添加文件到缓冲区列表</span>
<span class="err">:</span><span class="n">bd</span><span class="o">[</span><span class="n">elete</span><span class="o">]</span><span class="w">     </span><span class="n">删除缓冲区</span><span class="p">(</span><span class="n">关闭文件</span><span class="p">)</span>
<span class="err">:</span><span class="n">edit</span><span class="w"> </span><span class="k">file</span><span class="w">     </span><span class="n">把file加载到新的缓冲区中</span>
<span class="err">:</span><span class="n">bf</span><span class="o">[</span><span class="n">irst</span><span class="o">]</span><span class="w">     </span><span class="n">跳转到第一个缓冲区</span>
<span class="err">:</span><span class="n">bl</span><span class="o">[</span><span class="n">ast</span><span class="o">]</span><span class="w">     </span><span class="n">跳转到最后一个缓冲区</span>
<span class="err">:</span><span class="n">bp</span><span class="w">     </span><span class="n">跳转到上一个缓冲区</span>
<span class="err">:</span><span class="n">bn</span><span class="w">     </span><span class="n">跳转到下一个缓冲区</span>
</code></pre></div>

<h2>vim配置</h2>
<div class="highlight-custom"><pre><span></span><code>set nu sts=4 ts=4 sw=4 et si ai
nu是显示行号，ts是tabstop，sts是softtabstop，sw是shiftwidth，这三个参数是指代啥我都忘了，就知道是和tab制表符相关的。
et是expandtab，即把自动把一个tab扩展为空格。si是smart indent，ai是auto indent，有何区别呢？

完整的Vim配置，如下：
set nu sts=4 ts=4 sw=4 et si ai
set ruler
set hlsearch
syntax on
filetype plugin on

ruler是在右下角显示光标当前位置
hlsearch是高亮搜索关键字
最后把根据文件类型作相关调整的插件也打开。例如Makefile里是必须要用到tab制表符的，即使你之前设置了expandtab，设置了filetype plugin on之后，按tab也不会用空格代替制表符。
</code></pre></div>

<h2>其他</h2>
<div class="highlight-custom"><pre><span></span><code><span class="n">高级一些的编辑器</span><span class="err">，</span><span class="n">都会包含宏功能</span><span class="err">，</span><span class="n">vim当然不能缺少了</span><span class="err">，</span><span class="n">在vim中使用宏是非常方便的</span><span class="err">：</span>

<span class="err">:</span><span class="n">qx</span><span class="w">     </span><span class="n">开始记录宏</span><span class="err">，</span><span class="n">并将结果存入寄存器x</span>
<span class="n">q</span><span class="w">     </span><span class="n">退出记录模式</span>
<span class="nv">@x</span><span class="w">     </span><span class="n">播放记录在x寄存器中的宏命令</span>
<span class="n">稍微解释一下</span><span class="err">，</span><span class="nl">当在normal模式下输入</span><span class="p">:</span><span class="n">qx后</span><span class="err">，</span><span class="n">你对文本的所有编辑动作将会被记录下来</span><span class="err">，</span><span class="n">再次输入q即退出了记录模</span>
<span class="n">式</span><span class="err">，</span><span class="n">然后输入</span><span class="nv">@x对刚才记录下来的命令进行重复</span><span class="err">，</span><span class="n">此命令后可跟数字</span><span class="err">，</span><span class="n">表示要重复多少次</span><span class="err">，</span><span class="n">比如</span><span class="nv">@x20</span><span class="err">，</span><span class="n">可以重复20次</span><span class="err">。</span><span class="n">这个在文本的批处理中是非常有用的</span><span class="err">。</span>

<span class="n">查找替换</span>
<span class="o">/</span><span class="n">pattern</span><span class="w">     </span><span class="n">向后搜索字符串pattern</span>
<span class="vm">?</span><span class="n">pattern</span><span class="w">     </span><span class="n">向前搜索字符串pattern</span>
<span class="n">n</span><span class="w">     </span><span class="n">下一个匹配</span><span class="p">(</span><span class="n">如果是</span><span class="o">/</span><span class="n">搜索</span><span class="err">，</span><span class="n">则是向下的下一个</span><span class="err">，</span><span class="vm">?</span><span class="n">搜索则是向上的下一个</span><span class="p">)</span>
<span class="n">N</span><span class="w">     </span><span class="n">上一个匹配</span><span class="p">(</span><span class="n">同上</span><span class="p">)</span>
<span class="err">:</span><span class="o">%</span><span class="n">s</span><span class="o">/</span><span class="k">old</span><span class="o">/</span><span class="k">new</span><span class="o">/</span><span class="n">g</span><span class="w">     </span><span class="n">搜索整个文件</span><span class="err">，</span><span class="n">将所有的old替换为new</span>
<span class="err">:</span><span class="o">%</span><span class="n">s</span><span class="o">/</span><span class="k">old</span><span class="o">/</span><span class="k">new</span><span class="o">/</span><span class="n">gc</span><span class="w">     </span><span class="n">搜索整个文件</span><span class="err">，</span><span class="n">将所有的old替换为new</span><span class="err">，</span><span class="n">每次都要你确认是否替换</span>
<span class="n">要替换两行之间出现的每个匹配串</span>
<span class="n">输入</span><span class="w">   </span><span class="err">:#</span><span class="p">,</span><span class="n">#s</span><span class="o">/</span><span class="k">old</span><span class="o">/</span><span class="k">new</span><span class="o">/</span><span class="n">g</span><span class="w">   </span><span class="n">其中</span><span class="w"> </span><span class="err">#</span><span class="p">,</span><span class="err">#</span><span class="w"> </span><span class="n">代表的是替换操作的若干行中首尾两行的行号</span><span class="err">。</span>


<span class="o">*</span><span class="w">     </span><span class="n">查找光标所在处的单词</span><span class="err">，</span><span class="n">向下查找</span>
<span class="err">#</span><span class="w">     </span><span class="n">查找光标所在处的单词</span><span class="err">，</span><span class="n">向上查找</span>
<span class="err">`</span><span class="p">.</span><span class="w">     </span><span class="n">跳转至上次编辑位置</span>



<span class="n">要向当前文件中插入另外的文件的内容</span><span class="err">，</span><span class="n">请输入</span><span class="w"> </span><span class="err">:</span><span class="n">r</span><span class="w"> </span><span class="n">FILENAME</span>
<span class="err">：</span><span class="n">您还可以读取外部命令的输出</span><span class="err">。</span><span class="n">例如</span><span class="err">，</span><span class="w"> </span><span class="err">:</span><span class="n">r</span><span class="w"> </span><span class="err">!</span><span class="n">ls</span><span class="w"> </span><span class="n">可以读取</span><span class="w"> </span><span class="n">ls</span><span class="w"> </span><span class="n">命令的输出</span><span class="err">，</span><span class="n">并把它放置在光标下面</span>

<span class="n">仅在一次查找时忽略字母大小写</span><span class="err">，</span><span class="n">您可以使用</span><span class="w"> </span><span class="err">\</span><span class="n">c</span><span class="err">：</span>
<span class="w">       </span><span class="o">/</span><span class="k">ignore</span><span class="err">\</span><span class="n">c</span><span class="w"> </span><span class="o">&lt;</span><span class="n">回车</span><span class="o">&gt;</span>

<span class="n">vim要回到您之前的位置按</span><span class="w"> </span><span class="n">CTRL</span><span class="o">-</span><span class="n">O</span><span class="w"> </span><span class="p">(</span><span class="n">按住</span><span class="w"> </span><span class="n">Ctrl</span><span class="w"> </span><span class="n">键不放同时按下字母</span><span class="w"> </span><span class="n">o</span><span class="p">)</span><span class="err">。</span><span class="n">重复按可以</span>
<span class="n">回退更多步</span><span class="err">。</span><span class="n">CTRL</span><span class="o">-</span><span class="n">I</span><span class="w"> </span><span class="n">会跳转到较新的位置</span><span class="err">。</span>

<span class="err">:</span><span class="n">termianl</span><span class="w"> </span><span class="n">打开一个终端窗口</span>
</code></pre></div></div>
    <footer>
<p class="meta">
  <span class="byline author vcard">
    Posted by <span class="fn">
        zhiliao
    </span>
  </span>
<time datetime="2014-03-13T00:00:00+08:00" pubdate>2014-03-13 00:00:00</time>  <span class="categories">
    <a class='category' href='/category/editor.html'>editor</a>
  </span>
  <span class="categories">
    <a class="category" href="/tag/editor.html">editor</a>,    <a class="category" href="/tag/vim.html">vim</a>  </span>
</p><div class="sharing">
</div>    </footer>
  </article>

</div>

<aside class="sidebar">
<section>
  <h1>Recent Posts</h1>
  <ul id="recent_posts">
    <li class="post">
        <a href="/posts/2023/08/22/bash-conversion.html">bash进制转换</a>
    </li>
    <li class="post">
        <a href="/posts/2023/08/16/remap-caps-ctrl.html">在Linux下交换Ctrl与大写锁定键</a>
    </li>
    <li class="post">
        <a href="/posts/2023/08/15/learn-java.html">java入门精粹</a>
    </li>
    <li class="post">
        <a href="/posts/2023/08/04/tcl-expect.html">Tcl 和 expect教程</a>
    </li>
    <li class="post">
        <a href="/posts/2023/08/01/armbian-config-software.html">armbian-config 支持自动安装的软件</a>
    </li>
  </ul>
</section><section>
  <h1>Categories</h1>
    <ul id="recent_posts">
      <li><a href="/category/android.html">android (2)</a></li>
      <li><a href="/category/blog.html">blog (1)</a></li>
      <li><a href="/category/bootloader.html">bootloader (2)</a></li>
      <li><a href="/category/container.html">container (1)</a></li>
      <li><a href="/category/database.html">database (1)</a></li>
      <li><a href="/category/editor.html">editor (4)</a></li>
      <li><a href="/category/filesystem.html">filesystem (1)</a></li>
      <li><a href="/category/firefox.html">firefox (1)</a></li>
      <li><a href="/category/git.html">git (4)</a></li>
      <li><a href="/category/golang.html">golang (1)</a></li>
      <li><a href="/category/gu-piao.html">股票 (1)</a></li>
      <li><a href="/category/ide.html">IDE (1)</a></li>
      <li><a href="/category/interview.html">interview (1)</a></li>
      <li><a href="/category/linux.html">linux (51)</a></li>
      <li><a href="/category/network.html">network (7)</a></li>
      <li><a href="/category/nltk.html">nltk (2)</a></li>
      <li><a href="/category/notes.html">notes (1)</a></li>
      <li><a href="/category/other.html">other (1)</a></li>
      <li><a href="/category/programming.html">programming (10)</a></li>
      <li><a href="/category/python.html">python (1)</a></li>
      <li><a href="/category/software.html">software (1)</a></li>
      <li><a href="/category/stock.html">stock (1)</a></li>
      <li><a href="/category/storage.html">storage (2)</a></li>
      <li><a href="/category/vm.html">vm (1)</a></li>
      <li><a href="/category/web.html">web (4)</a></li>
      <li><a href="/category/windows.html">windows (1)</a></li>
      <li><a href="/category/xwindow.html">xwindow (1)</a></li>
  </ul>
</section>
<section>
  <h1>Tags</h1>
    <a href="/tag/linux.html">linux</a>,    <a href="/tag/bash.html">bash</a>,    <a href="/tag/xwindow.html">Xwindow</a>,    <a href="/tag/programming-language.html">programming-language</a>,    <a href="/tag/java.html">java</a>,    <a href="/tag/programming.html">programming</a>,    <a href="/tag/software.html">software</a>,    <a href="/tag/storage.html">storage</a>,    <a href="/tag/debug.html">debug</a>,    <a href="/tag/c.html">C</a>,    <a href="/tag/git.html">git</a>,    <a href="/tag/patch.html">patch</a>,    <a href="/tag/text.html">text</a>,    <a href="/tag/selenium.html">selenium</a>,    <a href="/tag/web.html">web</a>,    <a href="/tag/docker.html">docker</a>,    <a href="/tag/flatpak.html">flatpak</a>,    <a href="/tag/interview.html">interview</a>,    <a href="/tag/qt.html">Qt</a>,    <a href="/tag/opensuse.html">openSUSE</a>,    <a href="/tag/filesystem.html">filesystem</a>,    <a href="/tag/ide.html">IDE</a>,    <a href="/tag/glang.html">glang</a>,    <a href="/tag/xdg.html">xdg</a>,    <a href="/tag/network.html">network</a>,    <a href="/tag/raspberry.html">raspberry</a>,    <a href="/tag/vm.html">vm</a>,    <a href="/tag/windows.html">windows</a>,    <a href="/tag/gdb.html">gdb</a>,    <a href="/tag/debian.html">debian</a>,    <a href="/tag/archlinux.html">archlinux</a>,    <a href="/tag/phicomm.html">phicomm</a>,    <a href="/tag/kernel.html">kernel</a>,    <a href="/tag/ext4.html">ext4</a>,    <a href="/tag/server.html">server</a>,    <a href="/tag/stock.html">stock</a>,    <a href="/tag/shu.html">书</a>,    <a href="/tag/gu-piao.html">股票</a>,    <a href="/tag/python.html">python</a>,    <a href="/tag/nltk.html">nltk</a>,    <a href="/tag/command.html">command</a>,    <a href="/tag/shell.html">shell</a>,    <a href="/tag/terminal.html">terminal</a>,    <a href="/tag/other.html">other</a>,    <a href="/tag/wireless.html">wireless</a>,    <a href="/tag/android.html">android</a>,    <a href="/tag/gtk.html">gtk+</a>,    <a href="/tag/gnome.html">gnome</a>,    <a href="/tag/keyboard.html">keyboard</a>,    <a href="/tag/firefox.html">firefox</a>,    <a href="/tag/arch.html">arch</a>,    <a href="/tag/database.html">database</a>,    <a href="/tag/mysql.html">mysql</a>,    <a href="/tag/notes.html">notes</a>,    <a href="/tag/sysctl.html">sysctl</a>,    <a href="/tag/vim.html">vim</a>,    <a href="/tag/editor.html">editor</a>,    <a href="/tag/pelican.html">pelican</a>,    <a href="/tag/blog.html">blog</a>,    <a href="/tag/book.html">book</a>,    <a href="/tag/bootloader.html">bootloader</a></section>
    <section>
        <h1>Social</h1>
        <ul>
            <li><a href="https://github.com/zhangjiaxing" target="_blank">github</a></li>
            <li><a href="http://wpa.qq.com/msgrd?v=3&uin=347820393&site=qq&menu=yes" target="_blank">qq</a></li>
            <li><a href="http://www.writebug.cn" target="_blank">blog</a></li>
            <li><a href="http://gallery.writebug.cn" target="_blank">gallery</a></li>
        </ul>
    </section>
    <section>
        <h1>Blogroll</h1>
        <ul>
            <li><a href="http://getpelican.com/" target="_blank">Pelican</a></li>
        </ul>
    </section>

</aside>
    </div>
  </div>
  <footer role="contentinfo">
<p>
    Copyright &copy;  2013&ndash;2023  zhiliao &mdash;
  <span class="credit">Powered by <a href="http://getpelican.com">Pelican</a></span>
</p>  </footer>
</body>
</html>